A blockchain is a database consisting of two or more block records that are linked together and that adhere to a predetermined standard or protocol. For brevity, block records may be referred to as “blocks.” Each block is a data structure that contains a payload and a link to the previous block. However, the link to the previous block may be omitted from the initial block (which may also be referred to as the “genesis block”). According to a typical blockchain protocol, a block also includes a hash value for the payload and a proof of work (POW), possibly along with other hash values or other types of data. Data items such as the link to the previous block, the POW, and the hash of the payload may be collected into a block header. The payload may include one or more transaction records. For brevity, transaction records may be referred to as “transactions.” Each transaction may be timestamped and digitally signed by the device which created it. After a device creates a transaction, the device may send it to other block chain peers via the Internet, the “cloud,” or any other suitable connection.
Bitcoin, for instance, is a popular blockchain implementation or protocol in which each block has a header with a hash for the previous block. The headers thus link the blocks into a chain. Each Bitcoin block also has a payload. That payload typically documents one or more financial transactions. Accordingly, a blockchain may be used as a distributed ledger of transactions.
A blockchain may be considered a “distributed” database because multiple different data processing systems may obtain copies of the blockchain, and multiple different data processing systems (DPSs) may update the blockchain. For instance, a blockchain may be made available to the public via the Internet, and DPSs may update the blockchain by creating a new block for the end of the blockchain and publishing that block to other nodes. A DPS that adds blocks to a blockchain (or that attempts to do so) may be referred to as a “miner.”
A blockchain may include all valid blocks that have ever been created. Accordingly, a blockchain may contain a set of data records that is continuously growing, with each record referring to at least one previous record on the set. A blockchain may thus be hardened against tampering and revision. The miners and other nodes which cooperate to maintain and build a particular blockchain may be referred to as a “blockchain system.” Each node in a blockchain system may include a copy of the entire blockchain or a portion of the blockchain.
When a DPS is started or restarted, it may need to perform various configuration operations before it can do useful work. Such configuration operations may be referred to in general as a “boot process.” In addition, booting is typically a fully automated process. For instance, when a network server is started or restarted, it may need to load a certain sequence of software modules and it may need to process other configuration data before it can process network traffic. Once the network server has successfully completed the boot process, the network server may be ready to perform useful work (e.g., handling network traffic).
In many situations, security of the boot process is an important concern. For instance, an attacker might be able to hijack a DPS by altering the firmware or other configuration data for that DPS.
As described in greater detail below, the present disclosure describes methods and apparatus to facilitate blockchain-based boot tracking for DPSs.